package com.gopay.common.domain.acps;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Version;
import java.io.Serializable;
import java.util.Date;

/**
 * 账户锁定状态修改，操作记录实体
 * @author yu_liu6@hnair.com
 * @date 2017-11-13 14:33:28
 */
@Entity
@Table(name = "ACPS_ACCT_OPERAT_LOGS")
public class AcpsAcctOperatLogs implements Serializable {
    //账户锁定状态-正常
    public static final String NORMAL = "A,NOR";
    //账户收付锁定
    public static final String FULL_LOCK = "F,FUL";
    //账户付款锁定
    public static final String PAY_LOCK = "F,DEB";
    //账户收款锁定
    public static final String RECV_LOCK = "F,CRE";
    //锁定行为
    public static final String TO_LOCK = "01";
    //解锁行为
    public static final String TO_UNLOCK = "04";
    //人工来源
    public static final String FROM_ADMIN_LOCK = "01";
    //反诈骗平台来源
    public static final String FROM_FRAUD_SYSTEM = "02";
    //预设额度锁定来源
    public static final String FROM_PRE_LIMIT_LOCK = "03";
    //灰名单规则锁定来源
    public static final String FROM_GRAY_LIST_RULE_LOCK = "04";
    //保证金锁定来源
    public static final String FROM_DEPOSIT_LOCK = "05";

    private int LogId;
    private String acctId;
    private String operationType;
    private String lockType;
    private String operaRes;
    private Date gmtCreate;
    private String operId;
    private String remark;
    private int version;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ACPS_ACCT_OPERAT_LOGS_SEQ")
    @SequenceGenerator(name = "ACPS_ACCT_OPERAT_LOGS_SEQ", allocationSize = 1,
            initialValue = 1, sequenceName = "ACPS_ACCT_OPERAT_LOGS_SEQ")
    @Column(name = "LOG_ID")
    public int getLogId() {
        return LogId;
    }

    public void setLogId(int logId) {
        LogId = logId;
    }

    @Column(name = "ACCT_ID")
    public String getAcctId() {
        return acctId;
    }

    public void setAcctId(String acctId) {
        this.acctId = acctId;
    }

    @Column(name = "OPERATION_TYPE")
    public String getOperationType() {
        return operationType;
    }

    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }

    @Column(name = "LOCK_TYPE")
    public String getLockType() {
        return lockType;
    }

    public void setLockType(String lockType) {
        this.lockType = lockType;
    }

    @Column(name = "OPERA_RES")
    public String getOperaRes() {
        return operaRes;
    }

    public void setOperaRes(String operaRes) {
        this.operaRes = operaRes;
    }

    @Column(name = "GMT_CREATE")
    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    @Column(name = "OPER_ID")
    public String getOperId() {
        return operId;
    }

    public void setOperId(String operId) {
        this.operId = operId;
    }

    @Column(name = "REMARK")
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Version
    @Column(name = "VERSION")
    public int getVersion() {
        return version;
    }

    public void setVersion(int version) {
        this.version = version;
    }
}
